# -*- Python -*- vim: set ft=python ts=4 sw=4 expandtab tw=79:
from lit.llvm.subst import ToolSubst
import site

# Load the custom analyzer test format, which runs the test again with Z3 if it
# is available.
site.addsitedir(os.path.dirname(__file__))
import analyzer_test

config.test_format = analyzer_test.AnalyzerTest(
    config.test_format.execute_external, config.use_z3_solver
)

# Filtering command used by Clang Analyzer tests (when comparing .plist files
# with reference output)
config.substitutions.append(
    (
        "%normalize_plist",
        "grep -Ev '%s|%s|%s'"
        % (
            "^[[:space:]]*<string>.* version .*</string>[[:space:]]*$",
            "^[[:space:]]*<string>/.*</string>[[:space:]]*$",
            "^[[:space:]]*<string>.:.*</string>[[:space:]]*$",
        ),
    )
)

# Filtering command for testing SARIF output against reference output.
config.substitutions.append(
    (
        "%normalize_sarif",
        "grep -Ev '^[[:space:]]*(%s|%s|%s)[[:space:]]*$'"
        % (
            '"uri": "file:.*%basename_t"',
            '"version": ".* version .*"',
            '"version": "2.1.0"',
        ),
    )
)

if not config.root.clang_staticanalyzer:
    config.unsupported = True
